package cn.huiyunche.base.service.framework.utils;

import cn.huiyunche.base.service.vo.BankCardBinVo;

public class BankCardBinUtils {

    public static void main(String[] args) {
        System.out.println(getNameOfBank("6228480402564890018", 0));

        System.out.println(getNameOfBank("6228480402564890018"));
        /*System.out.println(bankBin.length + ", " + bankName.length);
		
		String[] bn = new String[] { "北京银行", "工商银行", "光大银行", "广东发展银行", "华夏银行", "建设银行",
				"交通银行", "民生银行", "农业银行", "平安银行", "浦东发展银行",
				"兴业银行", "邮政储蓄银行", "招商银行", "中国银行", "中信银行" };
		for (String s : bn) {
			List<Integer> list = new ArrayList<>();
			for (int i = 0; i < bankName.length; i++) {
				if (s.equals(bankName[i])) {
					list.add(bankBin[i]);
				}
			}
			System.out.println(s);
			System.out.println(list);
			
			System.out.println();
		}*/
    }

    private static int[] bankBin = {102033, 103000, 303781, 356833, 356835, 356837, 356838, 356839, 356840, 356885,
            356886, 356887, 356888, 356889, 356890, 370246, 370247, 370248, 370249, 400360, 400937, 400938, 400939,
            400940, 400941, 400942, 402658, 402791, 403361, 403391, 404117, 404157, 404171, 404172, 404173, 404174,
            404738, 404739, 405512, 405512, 406252, 406254, 406365, 407405, 409665, 409666, 409667, 409668, 409669,
            409670, 409671, 409672, 410062, 415599, 421317, 421349, 421393, 421437, 421865, 421869, 421870, 421871,
            422160, 422161, 424106, 424107, 424108, 424109, 424110, 424111, 424902, 425862, 427010, 427018, 427019,
            427020, 427028, 427029, 427038, 427039, 427062, 427064, 427571, 428911, 431502, 431502, 433666, 433670,
            433680, 434061, 434062, 436718, 436728, 436738, 436742, 436745, 436748, 436768, 438088, 438125, 438126,
            438588, 438589, 439188, 439225, 439227, 442729, 442730, 451289, 451291, 451804, 451804, 451810, 451810,
            453242, 456351, 456418, 458060, 458060, 458071, 458071, 458123, 458124, 468203, 472067, 472068, 479228,
            479229, 481699, 486493, 486494, 486497, 487013, 489592, 489734, 489735, 489736, 491020, 491020, 491031,
            491032, 491040, 493427, 493878, 498451, 510529, 512315, 512316, 512411, 512412, 512425, 512466, 512695,
            512732, 514906, 514957, 514958, 517636, 518212, 518364, 518378, 518379, 518474, 518475, 518476, 518710,
            518718, 519412, 520082, 520108, 520152, 520169, 520382, 521899, 522153, 523036, 524011, 524047, 524070,
            524091, 524094, 524864, 524865, 525498, 525745, 525746, 526410, 527414, 528931, 528948, 530970, 530980,
            530980, 530990, 532420, 532430, 532450, 532458, 535910, 535910, 535918, 537830, 540297, 540838, 541068,
            541709, 543159, 544033, 545619, 545623, 545947, 547628, 547648, 547766, 547766, 548259, 548844, 552245,
            552288, 552534, 552587, 552599, 552742, 552794, 552801, 552853, 553131, 553242, 556610, 556617, 558360,
            558730, 558808, 558809, 558868, 558868, 558894, 558895, 558916, 601382, 601382, 601428, 601428, 601428,
            601428, 602969, 602969, 622150, 622150, 622151, 622151, 622166, 622166, 622168, 622168, 622188, 622188,
            622199, 622199, 622200, 622200, 622202, 622202, 622203, 622203, 622208, 622208, 622210, 622210, 622211,
            622211, 622212, 622212, 622213, 622213, 622214, 622214, 622215, 622215, 622220, 622220, 622225, 622225,
            622230, 622230, 622235, 622235, 622240, 622240, 622245, 622245, 622254, 622254, 622258, 622258, 622259,
            622259, 622260, 622260, 622261, 622261, 622280, 622280, 622346, 622346, 622347, 622347, 622348, 622348,
            622500, 622500, 622516, 622516, 622517, 622517, 622518, 622518, 622519, 622519, 622521, 622521, 622522,
            622522, 622523, 622523, 622575, 622575, 622576, 622576, 622577, 622577, 622578, 622578, 622579, 622579,
            622580, 622580, 622581, 622581, 622582, 622582, 622588, 622588, 622598, 622598, 622600, 622600, 622601,
            622601, 622602, 622602, 622603, 622603, 622615, 622615, 622617, 622617, 622619, 622619, 622622, 622622,
            622630, 622630, 622631, 622631, 622632, 622632, 622633, 622633, 622650, 622650, 622655, 622655, 622658,
            622658, 622660, 622660, 622690, 622690, 622691, 622691, 622692, 622692, 622696, 622696, 622698, 622698,
            622700, 622700, 622725, 622725, 622728, 622728, 622752, 622752, 622753, 622753, 622754, 622755, 622755,
            622756, 622756, 622757, 622757, 622758, 622758, 622759, 622759, 622760, 622760, 622761, 622761, 622762,
            622762, 622763, 622763, 622821, 622821, 622822, 622822, 622823, 622823, 622824, 622824, 622825, 622825,
            622826, 622826, 622827, 622836, 622836, 622837, 622837, 622840, 622840, 622841, 622842, 622843, 622844,
            622844, 622845, 622845, 622846, 622846, 622847, 622847, 622848, 622848, 622849, 622901, 622901, 622908,
            622908, 622909, 622909, 628218, 628288, 628366, 685800, 685800, 685800, 685800, 685800, 685800, 690755,
            690755, 690755, 690755, 843010, 843010, 843360, 843360, 843420, 843420, 843610, 843610, 843730, 843730,
            843800, 843800, 843850, 843850, 843900, 843900, 870000, 870000, 870100, 870100, 870300, 870300, 870400,
            870400, 870500, 870500, 955880, 955881, 955882, 955888, 984301, 621098, 622181, 955100, 621095, 620062,
            621285, 621798, 621799, 621797, 620529, 621096, 621622, 623219, 621674, 623218, 621599, 427030, 451811,
            620200, 620302, 620402, 620403, 620404, 620406, 620407, 620409, 620410, 620411, 620412, 620502, 620503,
            620405, 620408, 620512, 620602, 620604, 620607, 620611, 620612, 620704, 620706, 620707, 620708, 620709,
            620710, 620609, 620712, 620713, 620714, 620802, 620711, 620904, 620905, 621001, 620902, 621103, 621105,
            621106, 621107, 621102, 621203, 621204, 621205, 621206, 621207, 621208, 621209, 621210, 621302, 621303,
            621202, 621305, 621306, 621307, 621309, 621311, 621313, 621211, 621315, 621304, 621402, 621404, 621405,
            621406, 621407, 621408, 621409, 621410, 621502, 621317, 621511, 621602, 621603, 621604, 621605, 621608,
            621609, 621610, 621611, 621612, 621613, 621614, 621615, 621616, 621617, 621607, 621606, 621804, 621807,
            621813, 621814, 621817, 621901, 621904, 621905, 621906, 621907, 621908, 621909, 621910, 621911, 621912,
            621913, 621915, 622002, 621903, 622004, 622005, 622006, 622007, 622008, 622010, 622011, 622012, 621914,
            622015, 622016, 622003, 622018, 622019, 622020, 622102, 622103, 622104, 622105, 622013, 622111, 622114,
            622017, 622110, 622223, 622229, 622231, 622232, 622233, 622234, 622237, 622239, 622224, 622304, 622306,
            622309, 622238, 622314, 622315, 622317, 622402, 622403, 622404, 622313, 622504, 622505, 622513, 622502,
            622604, 622605, 622606, 622703, 622715, 622806, 622902, 622903, 622706, 623002, 623006, 623008, 623011,
            623012, 622904, 623015, 623100, 623202, 623301, 623400, 623500, 623602, 623803, 623901, 623014, 624100,
            624200, 624301, 624402, 62451804, 62451810, 62451811, 62458071, 623700, 624000, 628286, 622206, 621225,
            526836, 513685, 543098, 458441, 620058, 621281, 622246, 900000, 544210, 548943, 370267, 621558, 621559,
            621722, 621723, 620086, 621226, 356879, 356880, 356881, 356882, 528856, 621618, 620516, 621227, 621721,
            900010, 625330, 625331, 625332, 623062, 622236, 621670, 524374, 550213, 374738, 374739, 621288, 625708,
            625709, 622597, 622599, 360883, 360884, 625865, 625866, 625899, 623206, 621671, 620059, 404118, 404119,
            404120, 404121, 463758, 514027, 519413, 520083, 621282, 621336, 621619, 622828, 623018, 625996, 625997,
            625998, 628268, 625826, 625827, 548478, 544243, 622820, 622830, 622838, 625336, 628269, 620501, 621660,
            621661, 621662, 621663, 621665, 621667, 621668, 621669, 621666, 625908, 625910, 625909, 628388, 621256,
            621212, 620514, 622764, 518377, 622765, 622788, 621283, 620061, 621725, 620040, 558869, 621330, 621331,
            621332, 621333, 621297, 377677, 621568, 621569, 625905, 625906, 625907, 628313, 625333, 628312, 623208,
            621620, 621756, 621757, 621758, 621759, 621785, 621786, 621787, 621788, 621789, 621790, 621672, 625337,
            625338, 625568, 621284, 589970, 620060, 621080, 621081, 621466, 621467, 621488, 621499, 621598, 621621,
            621700, 622707, 622966, 622988, 625955, 625956, 621082, 621673, 623211, 356896, 356899, 356895, 531693,
            544887, 557080, 559051, 622708, 625964, 625965, 625966, 628266, 625362, 625363, 628316, 628317, 620021,
            620521, 434910, 522964, 622255, 622256, 622257, 622284, 622656, 628216, 66405512, 66601428, 955590, 955591,
            955592, 955593, 622262, 620082, 622998, 622999, 433671, 968807, 968808, 968809, 621771, 621767, 621768,
            621770, 621772, 621773, 620527, 622662, 622663, 622664, 622665, 622666, 622667, 622669, 622670, 622671,
            622672, 622668, 622661, 622674, 622673, 620518, 621489, 621492, 620535, 623156, 621490, 621491, 620085,
            623155, 623157, 623158, 623159, 999999, 621222, 623020, 623021, 623022, 623023, 622616, 622618, 427570,
            622620, 621691, 545392, 545393, 545431, 545447, 356859, 356857, 356856, 622621, 628258, 464580, 464581,
            523952, 545217, 553161, 356858, 622623, 625911, 377152, 377153, 377158, 377155, 625912, 625913, 521302,
            545620, 545621, 545948, 622609, 621286, 620520, 621483, 621485, 621486, 628290, 966666, 461982, 486861,
            528057, 622902, 622922, 628212, 451290, 625084, 625085, 625086, 625087, 548738, 549633, 552398, 625082,
            625083, 625960, 625961, 625962, 625963, 356851, 356852, 515672, 356850, 517650, 525998, 622177, 622277,
            622520, 628222, 628221, 984303, 622176, 622276, 622228, 621352, 621351, 621390, 621792, 625957, 625958,
            621791, 620530, 625993, 621793, 621795, 621796, 621030, 621420, 621468, 623111, 621626, 623058, 622986,
            622989, 622298, 623251, 622161, 628201, 628202, 539867, 528709, 439229, 552580, 552581, 552582, 552583,
            552584, 552585, 552586, 552588, 552589, 645621, 439228, 376968, 376966, 622918, 622916, 376969, 622919,
            433669, 433667, 404159, 404158, 403393, 403392, 433668, 628209, 628208, 628206, 49102, 53591};

    private static String[] bankName = {"广东发展银行", "农业银行", "光大银行", "中国银行", "中国银行", "光大银行", "光大银行", "光大银行",
            "光大银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "工商银行", "工商银行", "工商银行", "工商银行", "中信银行",
            "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "招商银行", "工商银行", "农业银行", "中信银行", "农业银行", "中信银行",
            "中信银行", "中信银行", "中信银行", "中信银行", "浦东发展银行", "浦东发展银行", "交通银行", "交通银行", "光大银行", "光大银行",
            "广东发展银行", "民生银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "招商银行", "民生银行", "北京银行",
            "建设银行", "民生银行", "中信银行", "民生银行", "民生银行", "民生银行", "民生银行", "北京银行", "北京银行", "中国银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "中国银行", "中国银行", "光大银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "民生银行", "广东发展银行", "华夏银行", "华夏银行", "中信银行", "中信银行", "中信银行", "建设银行", "建设银行", "建设银行", "建设银行",
            "建设银行", "建设银行", "建设银行", "建设银行", "广东发展银行", "中国银行", "工商银行", "工商银行", "兴业银行", "兴业银行", "招商银行", "招商银行", "招商银行",
            "中信银行", "中信银行", "兴业银行", "中国银行", "工商银行", "工商银行", "工商银行", "工商银行", "建设银行", "中国银行", "浦东发展银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "交通银行", "交通银行", "招商银行", "民生银行", "民生银行", "招商银行", "招商银行", "光大银行", "兴业银行", "兴业银行",
            "光大银行", "广东发展银行", "建设银行", "工商银行", "工商银行", "工商银行", "农业银行", "农业银行", "建设银行", "广东发展银行", "交通银行",
            "广东发展银行", "中国银行", "浦东发展银行", "工商银行", "中国银行", "中国银行", "中国银行", "中国银行", "招商银行", "民生银行", "中国银行", "中国银行",
            "中信银行", "中国银行", "中国银行", "民生银行", "中信银行", "广东发展银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "招商银行",
            "招商银行", "农业银行", "农业银行", "中信银行", "广东发展银行", "交通银行", "广东发展银行", "交通银行", "中国银行", "兴业银行", "招商银行", "工商银行",
            "兴业银行", "工商银行", "建设银行", "中国银行", "中国银行", "工商银行", "中国银行", "中国银行", "建设银行", "兴业银行", "广东发展银行", "民生银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "建设银行", "建设银行", "建设银行", "建设银行", "农业银行", "农业银行", "农业银行", "交通银行", "中国银行",
            "中国银行", "中国银行", "广东发展银行", "光大银行", "建设银行", "招商银行", "招商银行", "招商银行", "中国银行", "中国银行", "中国银行", "中国银行", "工商银行",
            "广东发展银行", "建设银行", "民生银行", "招商银行", "招商银行", "农业银行", "中国银行", "广东发展银行", "建设银行", "交通银行", "中国银行", "建设银行", "民生银行",
            "中信银行", "工商银行", "农业银行", "中国银行", "中国银行", "中国银行", "中国银行", "广东发展银行", "建设银行", "中信银行", "中国银行", "中国银行",
            "交通银行", "交通银行", "交通银行", "交通银行", "北京银行", "北京银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "建设银行", "建设银行",
            "建设银行", "建设银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "交通银行", "交通银行", "交通银行", "交通银行",
            "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "建设银行", "建设银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行",
            "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "招商银行",
            "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行",
            "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行",
            "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行",
            "华夏银行", "华夏银行", "华夏银行", "华夏银行", "华夏银行", "华夏银行", "华夏银行", "华夏银行", "光大银行", "光大银行", "光大银行", "光大银行",
            "光大银行", "光大银行", "光大银行", "光大银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行",
            "中信银行", "中信银行", "中信银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行",
            "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行",
            "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行",
            "农业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "交通银行", "工商银行", "建设银行", "广东发展银行", "广东发展银行",
            "广东发展银行", "广东发展银行", "广东发展银行", "广东发展银行", "招商银行", "招商银行", "招商银行", "招商银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行",
            "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行",
            "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行",
            "浦东发展银行", "浦东发展银行", "工商银行", "工商银行", "工商银行", "工商银行", "浦东发展银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行",
            "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行", "邮政储蓄银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行", "工商银行",
            "工商银行", "工商银行", "工商银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行",
            "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行",
            "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行", "农业银行",
            "农业银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行", "中国银行",
            "中国银行", "中国银行", "中国银行", "中国银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行",
            "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行",
            "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "建设银行",
            "建设银行", "建设银行", "建设银行", "建设银行", "建设银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行",
            "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "交通银行", "中信银行", "中信银行", "中信银行",
            "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "光大银行", "光大银行",
            "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行",
            "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "光大银行", "华夏银行", "华夏银行",
            "华夏银行", "华夏银行", "华夏银行", "华夏银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行",
            "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行",
            "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "民生银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行",
            "招商银行", "招商银行", "招商银行", "招商银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行",
            "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "兴业银行", "浦东发展银行",
            "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行",
            "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行",
            "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "浦东发展银行", "北京银行", "北京银行", "北京银行", "北京银行", "平安银行", "平安银行",
            "平安银行", "平安银行", "平安银行", "建设银行", "光大银行", "光大银行", "光大银行", "华夏银行", "华夏银行", "招商银行", "招商银行", "招商银行", "招商银行",
            "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "招商银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行",
            "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "中信银行", "农业银行", "农业银行"};


    // 传入卡号 得到银行名称
    public static BankCardBinVo getNameOfBank(String idCard) {
        return cardbinOfBank(idCard, 0);
    }

    // 传入卡号 得到银行名称
    public static BankCardBinVo getNameOfBank(String idCard, int offset) {
        return cardbinOfBank(idCard, offset);
    }

    // 传入卡号 得到银行名称
    private static BankCardBinVo cardbinOfBank(String idCard, int offset) {
        BankCardBinVo bcbv = new BankCardBinVo();
        if (idCard == null || idCard.length() < 16 || idCard.length() > 19) {
            bcbv.setErrorMessage("卡号不合法");
            bcbv.setSuccess(false);
            return bcbv;
        }
        // Bin号
        String cardbin = idCard.substring(0, 6 + offset);
        int bin = 0, index = 0;
        bin = Integer.valueOf(cardbin);
        index = binarySearch(bankBin, bin);
        if (index == -1 || index > bankName.length) {
            bcbv.setErrorMessage("没有记录的卡号");
            bcbv.setSuccess(false);
            return bcbv;
        }
        bcbv.setSuccess(true);
        bcbv.setBankName(bankName[index]);
        return bcbv;
    }

    // 查找方法
    private static int binarySearch(int[] srcArray, int des) {
        int low = 0;
        int high = srcArray.length;
        while (low < high) {
            if (des == srcArray[low]) {
                return low;
            }
            low++;
        }
        return -1;
    }
}